import Vue from 'vue'

// 自定义聚焦指令
Vue.directive('focus', {
  // 在指令插入到DOM中自动触发
  inserted (el) {
    focus(el)
  },
  update (el) {
    focus(el)
  }
})

function focus (el) {
  // indexof()!==-1说明数标签存在
  if (['INPUT', 'TEXTAREA'].indexOf(el.tagName) !== -1) {
    el.focus()
  } else {
    let node = el.querySelector('textarea')
    if (node) {
      node.focus()
      return
    }
    node = el.querySelector('input')
    if (node) {
      node.focus()
      return
    }
    throw new Error('请把focus指令用在input或textarea上')
  }
}
